package org.feng.entity;

import java.sql.Timestamp;
import java.time.LocalDateTime;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import org.hibernate.annotations.CreationTimestamp;
import org.hibernate.annotations.UpdateTimestamp;

import com.fasterxml.jackson.annotation.JsonFormat;

import io.quarkus.hibernate.orm.panache.PanacheEntityBase;

/**
 * 订单信息
 * @author FengWenXue
 *
 */
@Entity
public class Orders extends PanacheEntityBase {

    /** 
     * 订单ID
     */
	@Id
    @GeneratedValue
    public Long id;
	
	/**
	 * 第三方支付ID 微信
	 */
    @Column(length=60,nullable=false)
    public String payId;
	
	/**
	 * 支付用户ID 微信OpenId
	 */
    @Column(length=40,nullable=false)
    public String openId;
	
    /** 
     * 设备ID
     */
    public Integer deviceId;
    /**
     * 服务商ID
     */
    public Integer svrId;
    
    /**
     * 运营商ID
     */
    public Integer ispId;
    
    /**
     * 购买时长(分钟) 购买商品数量 如果只有一个商品就写这里,如果有多个则写明细子表
     */
    //@Column(columnDefinition="1")
    public Integer payCount;

    /**
     * 支付类型 1 微信支付  2 支付宝支付 0 数字人民币支付 
     */
    //@Column(columnDefinition="1")
    public Byte type=1;
   /**
     * 订单描述 吸氧|制氢|商品名,如果有多个就写第一个商品名称+'...'
     */
    @Column(length=50,nullable=false)
    public String desc;

    /**
     * 服务剩余时长(分钟)  商品剩余数量
     */
    //@Column(columnDefinition="1")
    public Integer surplusCount; 

    /**
     * 支付金额 人民币 单位(分)
     */
    //@Column(columnDefinition="1")
    public Integer payFee;
    
    public float getFee() {
    	//float fee=payFee/100f;
    	return payFee/100f;
    }
    /**
     * 支付状态 0 待支付  1 支付成功 2 支付失败 
     */
    //@Column(columnDefinition="1")
    public Byte payStatus=0;
    /**
     * 经度
     */
    public float latitude;
    
    /**
     * 纬度
     */
    public float longitude;
    
    /**
     * 失败状态 1 正常  2 用户取消  3 支付密码错误 4 余额不足
     */
    //@Column(columnDefinition="1")
    public Byte status=1;
    
    /**
	* 交易时间
	*/
	@CreationTimestamp //新增时更新时间
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
	@Column(nullable=false,updatable=false)
    private LocalDateTime createTime;//=LocalDateTime.now();

    public LocalDateTime getCreateTime() {
		return createTime;
	}

	/**
	* 支付时间
	*/
	//@JsonIgnore
    @UpdateTimestamp //更新时更新时间
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    //@Temporal(TemporalType.TIMESTAMP)
	@Column(nullable=false,insertable=false)
    public Timestamp modifyTime;	
}
